Fonctions utiles

load(orthopoly)$

support_et_poids_de_gauss_legendre(n):=
/* renvoie le tableau [[x1,w1],...,[xn,wn]] composés des tableaux [points de support,poids]. 
adaptation de gauleg--Rybicki du numerical recipes */
block([polynome,derivee,racines,poids,x,precision:10^(-15)],
polynome:legendre_p(n,x),derivee:diff(polynome,x),
racines:realroots(polynome,precision),
map(lambda([u],ev(float([x,2/((1-x^2)*derivee^2)]),u)),racines)
)$
SPGL:support_et_poids_de_gauss_legendre;

Le format de sortie de support_et_poids_de_gauss_legendre :
[[w1,x1],[w2,x1],...]

SPGL(3);

Exemple d'utilisation

SP:SPGL(3);
f(x):=x^2;
block([P:length(SP),p:1,res:0],
      while (p <= P) do {res:res+SP[p][2]*f(SP[p][1]),p:p+1},
      res);